package cn.com.surker.material.service;

import cn.com.surker.dto.main.MainDiscountQueryDTO;
import cn.com.surker.dto.main.MainDiscountUpdateDTO;
import cn.com.surker.material.entity.MainMaterialDiscount;
import cn.com.surker.spring.RestResultDto;
import cn.com.surker.system.model.CacheUser;
import cn.com.surker.vo.main.MainMaterialDiscountVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

public interface MainMaterialDiscountService extends IService<MainMaterialDiscount> {

    /**
     * 材料扣重设置 分页方法
     * @param dto
     * @return
     */
    IPage<MainMaterialDiscountVO> pageData(MainDiscountQueryDTO dto);


    /**
     * 保存方法
     * @param dto
     * @return
     */
    Boolean saveMainMaterialDiscount(MainDiscountUpdateDTO dto, CacheUser user);

    /**
     * 更新方法
     * @param dto
     * @return
     */
    Boolean updateMainMaterialDiscount(MainDiscountUpdateDTO dto, CacheUser user);

    /**
     * 更新状态方法
     * @param dto
     * @param user
     * @return
     */
    Boolean updateStatusById(MainDiscountUpdateDTO dto, CacheUser user);

    /**
     * 获取单位关联的材料类型信息
     * @param orgId
     * @return
     */
    List<Map<String,Object>> getMaterialListByOrgId(String orgId, Long supplierId);

    /**
     * 获取单位关联的供应商信息
     * @param orgId
     * @return
     */
    List<Map<String,Object>> getSupplierListByOrgId(String orgId);

    /**
     * 材料扣重设置 分页方法
     * @param dto
     * @return
     */
    IPage<MainMaterialDiscountVO> pageCloud(String searchVal, Long orgId, Long supplierId, Long materialId, Integer offset, Integer limit);
    /**
     * 云端保存
     * @param dto
     * @return
     */
    RestResultDto saveCloud(MainDiscountUpdateDTO dto);

    /**
     * 云端更新
     * @param dto
     * @return
     */
    RestResultDto updateCloud(MainDiscountUpdateDTO dto);
}
